Understanding Software Architectures: Tracing architectural knowledge in software architecture documentation
نویسنده
چکیده
Introduction " The reality is more excellent than the report. " – Ralph Waldo Emerson This thesis is about understanding software architecture documentation and how the integration of software architecture description and rationale can improve this understanding. Understanding software architecture (documentation) is important in the complete life cycle of a software architecture; during development, maintenance and evolution. Understanding the documentation of a software architecture is difficult. A description of the design of a software architecture is far from enough to make it understandable. A description does not answer why a design is done as it is, or how the software architecture arrived at the present design. To understand a software architecture, one must know and understand the reasoning behind the design, i.e. the rationale, and how architectural artifacts are related. Research in software architecture can be seen in two perspectives: a traditional and modern one. The traditional perspective describes the design of a software architecture in terms of components and connectors and how these are arranged. The second, more recent one describes software architecture in terms of the decisions and rationale that led up to the software architecture. Research and practice so far have been confined within these perspectives, but an integration of the traditional and modern perspectives to describe software architecture promises to solve some of the problems of software architecture. Figure 1 illustrates these two perspectives. Both perspectives are about representing architectural knowledge, which is done in either a non-formalized or a formalized approach. The research areas that result from this subdivision are traditional software architecture documentation, modeling of software architectures, templates for capturing architectural decisions, and ontologies for representing architectural knowledge. This thesis will analyze the problems of understandability in these areas except modeling of software architectures, because this area is not relevant for documentation of software architecture. The focus lies on how understandability of software architecture documentation can be improved by integrating it with rationale. The remainder of this chapter gives a short introduction to the traditional and modern perspectives on software architecture description and rationale. This is followed by a section on how an integration of these perspectives promises to solve some
منابع مشابه
Fuzzy based Quantitative Evaluation of Architectures using Architectural Knowledge
Software architecture is a standard and essential part of system development. The knowledge produced and consumed during this process needs to be shared and reused among different stakeholders. Therefore, software architecture knowledge (AK) needs to be managed for improving the architectural capabilities. ADUAK (Architectural Development using Architectural Knowledge) model has been developed ...
متن کاملAn Approach for Capturing and Documenting Architectural Decisions of Reference Architectures
During the design of software architectures of software systems, it is widely known the relevance of capturing and documenting architectural decisions, i.e., reasons, implications, justification, and trade-offs related to choices made in these architectures. Therefore, it is possible to achieve a more complete documentation of software architectures that also contributes to the success of the s...
متن کاملViability for codifying and documenting architectural design decisions with tool support
Current software architecture practices have been focused on modeling and documenting the architecture of a software system by means of several architectural views. In practice, the standard architecture documentation lacks explicit description of the decisions made and their underlying rationale, which often leads to knowledge loss. This fact strongly affects the maintenance activities as we n...
متن کاملTwo controlled experiments on model-based architectural decision making
Context: In recent years, architectural design decisions are becoming more and more common for documenting software architectures. Rather than describing the structure of software systems, architectural decisions capture the design rationale and – often reusable – architectural knowledge. Many approaches and tools have been proposed in the literature to support architectural decision making and...
متن کاملDocumenting after the fact: Recovering architectural design decisions
Software architecture documentation helps people in understanding the software architecture of a system. In practice, software architectures are often documented after the fact, i.e. they are maintained or created after most of the design decisions have been made and implemented. To keep the architecture documentation up-to-date an architect needs to recover and describe these decisions. This p...
متن کامل